const db = require("../db")
const path=require("path")
const e = require("express")
//新增文章
exports.addArticle=(req,res)=>{
    //通过if条件判断文章图片是否存在
    if(!req.file || req.file.fieldname!=='cover_img'){
        return res.cc('文章封面是必选参数')
    }
    //将所有信息封装到articleInfo中
    articleInfo={
        ...req.body,
        //发布日期
        pub_date:new Date(),
        //作者id
        author_id:req.user.id,
        //文章路径
        cover_img:path.join('/uploads',req.file.filename)
    }

    //新增文章的sql语句
    const sqlstr1="insert into ev_articles set ?"
    db.query(sqlstr1,articleInfo,(err,results)=>{
        if(err) return res.cc(err)
        if(results.affectedRows!==1)
            return res.cc("数据插入失败")
        res.send({
            status:0,
            message:'新增文章成功!'
        })    
    })

    /*console.log(req.body)
    console.log("-----------------------")
    console.log(req.file)
    res.send("ok")*/
}

//获取所有文章信息
exports.getArticles=(req,res)=>{
    const sqlstr2="select * from ev_articles where is_delete=0"
    db.query(sqlstr2,(err,results)=>{
        if(err)
            return res.cc(err)
        res.send({
            status:0,
            message:"查询成功",
            data:results
        })    
    })
}


//依据文章id获取所有文章信息
//做表单校验，判断是否存在id
//开始查询操作
exports.getArticleById=(req,res)=>{
    const sqlstr3="select * from ev_articles where id=?"
    db.query(sqlstr3,req.params.id,(err,results)=>{
        if(err) 
            return res.cc(err)
        if(results.length!==1)
            return res.cc("没有查询到相关数据!")
        res.send({
            status:0,
            message:'查询成功!',
            data:results
        })        
    })
}

//依据文章id删除文章
//表单校验--判断输入id是否合法
exports.deleteArticleByid=(req,res)=>{
    const sqlstr4='update ev_articles set is_delete=? where id=?'
    db.query(sqlstr4,[1,req.params.id],(err,results)=>{
        if(err)
            return res.cc(err)
        if(results.affectedRows!==1)
            return res.cc("文章删除失败!")
        res.send({
            status:0,
            message:'文章删除成功!',
        })        
    })
}

//依据id修改文章
//表单校验--判断内容是否合法
//依据数据库中的数据判断文章状态,只有状态为草稿的文章,才可修改内容
//修改内容
exports.updateArticleInfo=(req,res)=>{
    //通过if判断文件信息
    if(!req.file || req.file.fieldname!=='cover_img')
        return res.cc("文件信息是必填参数!")
    //判断文章是否存在，同时判断状态是否为草稿
    const sqlstr5="select * from ev_articles where id=?"
    db.query(sqlstr5,[req.params.id],(err,results)=>{
        if(err) return res.cc(err)
        if(results.length!==1)
            return res.cc("该文章不存在!")
        if(results[0].state!=='草稿')
            return res.cc("拒绝修改,该文章不是草稿!")
        //执行修改操作
        const sqlstr6='update ev_articles set ? where id=?'
        db.query(sqlstr6,[req.body,req.params.id],(err,results)=>{
            if(err) return res.cc(err)
            if(results.affectedRows!==1)
                return res.cc("文章修改失败")
            res.send({
                status:0,
                message:"文章修改成功!"
            })    
        })
    })
}